home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-generic / irq_regs.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  980 b   |  38 lines

  1. /* Fallback per-CPU frame pointer holder
  2.  *
  3.  * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
  4.  * Written by David Howells (dhowells@redhat.com)
  5.  *
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version
  9.  * 2 of the License, or (at your option) any later version.
  10.  */
  11.  
  12. #ifndef _ASM_GENERIC_IRQ_REGS_H
  13. #define _ASM_GENERIC_IRQ_REGS_H
  14.  
  15. #include <linux/percpu.h>
  16.  
  17. /*
  18.  * Per-cpu current frame pointer - the location of the last exception frame on
  19.  * the stack
  20.  */
  21. DECLARE_PER_CPU(struct pt_regs *, __irq_regs);
  22.  
  23. static inline struct pt_regs *get_irq_regs(void)
  24. {
  25.     return __get_cpu_var(__irq_regs);
  26. }
  27.  
  28. static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
  29. {
  30.     struct pt_regs *old_regs, **pp_regs = &__get_cpu_var(__irq_regs);
  31.  
  32.     old_regs = *pp_regs;
  33.     *pp_regs = new_regs;
  34.     return old_regs;
  35. }
  36.  
  37. #endif /* _ASM_GENERIC_IRQ_REGS_H */
  38.